design smell
Missing abstraction
when clumps of data or encoded strings are used instead of creating an abstraction.
Also known as "primitive obsession" and "data clumps".
Multifaceted abstraction
when an abstraction has multiple responsibilities assigned to it.
Also known as "conceptualization abuse".
Duplicate abstraction
when two or more abstractions have identical names or implementation or both.
Also known as "alternative classes with different interfaces" and "duplicate design artifacts".
Deficient encapsulation
when the declared accessibility of one or more members of an abstraction is more permissive than actually required.
Unexploited encapsulation
when client code uses explicit type checks (using chained if-else or switch statements that check for the type of the object) instead of exploiting the variation in types already encapsulated within a hierarchy.
Broken modularization
when data and/or methods that ideally should have been localized into a single abstraction are separated and spread across multiple abstractions.
Insufficient modularization
when an abstraction exists that has not been completely decomposed, and a further decomposition could reduce its size, implementation complexity, or both.
Circular dependency. Cyclically dependent modularization
when two or more abstractions depend on each other directly or indirectly (creating a tight coupling between the abstractions).
Also known as "cyclic dependencies".
Cyclic hierarchy
when a supertype in a hierarchy depends on any of its subtypes.
Also known as "inheritance/reference cycles".
Unfactored hierarchy
when there is unnecessary duplication among types in a hierarchy.
Broken hierarchy
when a supertype and its subtype conceptually do not share an “IS-A” relationship resulting in broken substitutability.
Also known as "inappropriate use of inheritance" and "misapplying IS A".
Anti-pattern
software rot
/suto3/google.icondesign smell
image design smell
define design smell
wikipedia design smell
weblio design smell
kotobank design smell
jisho design smell